home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 1992 August / info-mac-1992.iso / Applications (app) / Ray Tracer / macros.h < prev    next >
Text File  |  1988-11-13  |  1KB  |  32 lines

  1. /* some of the most important stuff in the program */
  2. #define DOT(v1,v2) (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z)
  3. /* returns dot product of two vectors */
  4. #define LN2(v)       (DOT(v,v))
  5. /* returns the square of the length of a vector */
  6. #define LEN(v)       sqrt(LN2(v))
  7. /* guess */
  8. #define XZL(v)       sqrt(v.x*v.x+v.z*v.z)
  9. /* returns the component in the xz plane of a vector */
  10. #define SCMLT(sc,vct) vct.x*= sc;vct.y*= sc;vct.z*= sc;vct.l*= sc;
  11. /* multiplies a vetor by a scalar */
  12. #define MV(a,b,c,v)   v.x= a;v.y= b;v.z= c;
  13. /* makes a vector. wouldn't need this with c++ */
  14. #define SV(t,u,v)  t.x=u.x-v.x;t.y=u.y-v.y;t.z=u.z-v.z;
  15. /*subtract vector t=u-v */
  16. #define AV(t,u,v)  t.x=u.x+v.x;t.y=u.y+v.y;t.z=u.z+v.z;
  17. /* add vector t=u+v */
  18. #define MTV(v1,m,v2) MV(DOT(m.x,v2),DOT(m.y,v2),DOT(m.z,v2),v1)
  19. /* multiply transpose matrix by vector. v1=m*v2 */
  20.  
  21. #define LEVEL 5/* levels of recursion */
  22. #define RLEV  3/*don't want as many inside the ball, takes forever as it is*/
  23.  
  24.  
  25. #define HUGE 99999999999.0
  26. #define XMIN 10.0
  27. #define XMAX 220.0
  28. #define YMIN 10.0
  29. #define YMAX 170.0
  30. /* window size,  virtual units */
  31. #define SCALE  2.0
  32. /* magnification factor */